gtk_css_style_provider_lookup: minor loop optimiziation
authorAlexander Larsson <alexl@redhat.com>
Fri, 9 Nov 2012 09:06:55 +0000 (10:06 +0100)
committerAlexander Larsson <alexl@redhat.com>
Fri, 9 Nov 2012 09:16:18 +0000 (10:16 +0100)
This is a minor performance improvement but this loop
is run a lot so it actually matters in large state
changes.

gtk/gtkcssprovider.c

index fbf99709508b6026a295e6c066902caccfd4f16a..8be9d23d9fd4e4342e25e76a998c66b2e287d269 100644 (file)
@@ -1568,18 +1568,19 @@ gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider,
 {
   GtkCssProvider *css_provider;
   GtkCssProviderPrivate *priv;
-  int i;
+  GtkCssRuleset *ruleset;
   guint j;
 
   css_provider = GTK_CSS_PROVIDER (provider);
   priv = css_provider->priv;
 
-  for (i = priv->rulesets->len - 1; i >= 0; i--)
-    {
-      GtkCssRuleset *ruleset;
-
-      ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, i);
+  if (priv->rulesets->len == 0)
+    return;
 
+  for (ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, priv->rulesets->len - 1);
+       ruleset >= &g_array_index (priv->rulesets, GtkCssRuleset, 0);
+       ruleset--)
+    {
       if (ruleset->styles == NULL)
         continue;